Amazon SESで開封やクリックのトラッキングが可能になりました。
大栗です。
メール送信サービスのAmazon SESで開封やクリックのトラッキングが可能になったので試してみます。
- Open and Click Tracking Have Arrived
- Release: Amazon Simple Email Service on 2017-08-01
- Amazon SES Introduces Open and Click Metrics for Tracking Customer Engagement
メール送信ステータスのトラッキング
一般的なメール送信サービスでは、メールの開封やリンクのクリック率などを取得できるのが一般的です。自動応答メールなどのトランザクションメールでは個別のステータスを確認することは少ないと思いますが、マーケティングメールなどはエンゲージメントのKPIとして開封率やクリック率を重要視します。
Amazon SESは "Simple" Email Serviceの名の通りメールの送受信に機能を絞っており、今まで開封やクリックのトラッキングは別の仕組みで行う必要がありました。今回のアップデートで送信先毎の開封やクリックのトラッキングができるようになり、ユーザの動向を確認できるようになりました。
トラッキングデータの出力先として、CloudWatch、Kinesis Firehose、Amazon SNSが選択できます。CloudWatchで統計情報を確認したり、Kinesis FirehoseでS3やRedshiftに保存して分析したり、SNSから別のシステムやLambdaに連携したりと、様々な応用ができます。
開封やクリックをトラッキングする仕組みを簡単に説明してみます。開封のトラッキングではメール本文に小さな透明の画像のURL(URLは送信先毎にユニークなもの)を埋め込んで、その画像のURLのリクエストを確認することでトラッキングを行います。クリックのトラッキングの場合は、メール本文のリンクをAWSのURL(URLは送信先毎にユニークであり、元々のURLにリダイレクトする)に書き換えて、URLのリクエストを確認することでトラッキングを行います。この仕組みは他のメール送信サービスでも使われる一般的な仕組みです。
試してみる
メール送信設定
事前準備として、SESのメール送信環境を構築します。具体的な手順は、以下のエントリーをご覧ください。
トラッキング設定
SESのメニューに"Configuration Sets"が増えています。ここでCreate Configuration Set
をクリックします。
Configuration Setの名前を入力します。本記事ではconfig-set-test01
としています。
Configuration Setが作成されます。作成したconfig-set-test01
のリンクをクリックするか、選択して[Actions]-[Edit]をクリックします。
Configuration Setの編集画面となります。ここで開封やクリックのイベントの出力先を選択します。Kinesis FirehoseやSNSも選択できますが、ここではCloudWatchを選択します。
CloudWatchの設定を入力します。ここでは、以下のように入力します。
項目 | 値 | 備考 |
---|---|---|
Enabled | チェック | |
Name | test01 | |
Event types | Click, Open | |
Value Source | Email Header | |
Dimension Name | Dim | CloudWatchで集計する時のDimensionになります |
Default Value | Value | メール送信時に指定しない場合のDimensionのデフォルト値です |
Firehoseを選択した時には、以下のような入力項目になります。
SNSを選択した時には、以下のような入力項目になります。
CloudWatchの設定は以下のように表示されます。
メールを送信して確認する
Management Consoleからメールを送信します。Email Addresses
を開き、送信元メールアドレスを選択して、Send a Test Email
をクリックします。
Email FormatをRaw
にします。これは設定したConfiguration SetをX-SES-CONFIGURATION-SET
ヘッダで指定する必要があるためです。またX-SES-MESSAGE-TAGS
を指定することで、CloudWatchのDimensionを指定することができます。
ここでは送信元のメールアドレスが[email protected]
、送信先が[email protected]
で、SubjectをTracking Test 001
からTracking Test 010
までの10通としています。
ここで注意すべき点として、Content-Type
をtext/html
にしている点です。ドキュメントのようにtext/plain
にすると開封やクリックをトラッキングできません。(※2017年8月2日12:00 JST現在ではドキュメントが更新されていない模様です)画像の埋め込みやリンクのリダイレクトを行うのでHTMLメールで有る必要があります。
送信したMessageは、以下のような内容となります。Click The Link !
のURLは私のブログのURLにしています。
X-SES-MESSAGE-TAGS: Dim=Mail001 X-SES-CONFIGURATION-SET: config-set-test01 Subject: Tracking Test 001 From: [email protected] MIME-Version: 1.0 Content-Type:text/html This is a test. <a href="https://dev.classmethod.jp/author/oguri-hajime/">Click The Link !</a>
送信したメールを10通受信します。
まず、"Tracking Test 001"を開封します。すると「画像が非表示になっています。」と表示されています。これは、Gmailのデフォルトでは添付画像を表示させないためです。この状態では開封のトラッキングができないため下記の画像を表示
をクリックします。
すると、以下になります。小さくて透明な画像なので表示上分かりません。
少しするとCloudWatchのメトリクスにOpen
が現れます。
次にリンクのクリックを試してみます。
メールのClick The Link !
のリンク先が私のブログのURLから以下のような物に変わっています。
http://r.us-west-2.awstrack.me/L0/http:%2F%2Fdev.classmethod.jp%2Fauthor%2Foguri-hajime%2F/1/0a1b2c3d4e5f6g7h-a1b2c3d4-e5f6-g7h8-i9j0-a1b2c3d4e5f6-000000/mR_4e5f6g7ha1b2c3d4a1b2c3d4=53
リンクをクリックすると、ちゃんとリダイレクトされて私のブログのトップが表示されます。
CloudWatchでもClick
が表示されます。
さいごに
今回はCloudWatchでトラッキンデータを表示させたので統計値を表示できましたが、Kinesis FirehoseやSNSに詳細データを出力することでユーザの動向を細かく分析することも可能です。開封率やクリック率が取れないためにSESを敬遠していた方もいらっしゃったかもしれませんが、今回のアップデートによりSESを活用できる場面が増えたのではないでしょうか?